/*******************************************************************************
*
*   FILE NAME:
*       String.h - String class definition
*
*   DESCRIPTION:
*       Represents text as a series of Unicode characters.
*
*******************************************************************************/
#pragma once

#include "Types.h"

class String
{
public:
    String( void );
    String( const tchar* string_data );
    String( const String& other );
    ~String( void );
    
    String& operator=( const tchar* string_data );
    String& operator=( const String& other );
    String& operator+=( const String& other );
    friend boolean operator==( const String& str1, const String& str2 );
    friend boolean operator!=( const String& str1, const String& str2 );
    friend String operator+( const String& str1, const String& str2 );
    operator tchar*() const;

    uint32 GetLength( void );

protected:

private:
    tchar* mData;
    uint32 mLength;
};
